home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
101-125
/
scopedisk118
/
cosmicquest
/
cosmic.doc
< prev
next >
Wrap
Text File
|
1995-03-19
|
26KB
|
536 lines
Cosmic Conquest
Doc V1.0009
A interstellar multiplayer game of War and Peace
PUBLIC DOMAIN NOTICE
This program was placed in the public domain. It may be freely copied
for non-profit by anyone as long as the original archive or all the
unmodified files from the archive are distributed in one directory.
Anybody may modify this for his personal use, but please don't give
other people modified copies. On the other hand I'd be delighted to
have your modifications sent to me and to incorporate them in the main
program . This program is strictly public domain and not shareware
and as I don't depend on living on my programs and I wrote this for
fun, I wish you to play it at no higher price.
BEFORE START
Make a "games" subdirectory in the same directory you placed the game.
In this new directory all saved games are stored (Not necessary if you
extracted the zoo archive using the x// option.).
HOW TO PLAY
The aim of Cosmic Conquest is to be the sole remaining ruler over the
complete star cluster of 16 stars. Cosmic Conquest is always played
with four players which can be any combination of different human and
computer players. After selecting "Start a new game" enter the names
of the four players. To specify a computer player use as name,the
name of the computer algorithm and add some string to make the name
unique. There are four supported computer algorithms. These are
Klingon, Romulan, Berserker and Alien. Acceptable names are for
example: "romulan A" "Klingonian" "BerSERker Fred" Currently only the
klingon player is working intelligently,the others are in V1 only
stumps. To specify a player who is non-active already from the
beginning use the name "dead". All other names are interpreted as
names of human players. After having entered the names the game
starts and the players take turns at entering their commands.
DISPLAYS
A) Main map (Always displayed)
This map is automagicaly displayed in the large window on the left
hand side of the screen. Superimposed on a dot pattern all stars are
displayed as capital letters. Stars are color coded. Stars
completely controlled by one player are displayed in his color. Stars
on which several players control planets are displayed in orange.
Unknown or uninhabited stars are displayed in white. Stars displayed
in inverse are stars which already have been explored by you but on
which currently there is no information. Beware ! Information
displayed about these stars may be out of date and no longer accurate.
On this screen also all taskforces known to you are displayed as minor
letters in the color of their empire. Only taskforces in normal
space(not in hyperspace) are displayed. Sometimes several taskforces
will be at one star and the display will become muddled. To obtain
exact information simply examine the starsummary for this star. To
obtain a starsummary on an star click on it. To obtain information on
a taskforce click on it. If there are several taskforces at the star
then a starsummary is displayed and you can select your taskforce from
there. To obtain a general overview about all stars simply press the
left mouse button somewhere on the background pattern.
B) Status Display (hit 'z' for status display)
The status is displayed in middle window on the right. To obtain it
simply press the right mouse button anywhere. It gives your name and
your techlevel. This level starts at 100 and increases with research.
What types of ships are available to you depends on the techlevel.
The pop-stat show the number of millions of creatures of your race
alive.This includes colonies enslaved by other races. The ind-stat
gives your total industrial capacity. It is the sum of the industry
of all planets you rule. Below,the names of all other races and your
attitude towards them (first) and their attitude towards you (second).
This can be War, Peace or Alliance.
C) Starsummary ('s' on the keyboard and hit return when asked
for planet)
The starsummary is displayed in the middle of the 3 windows on the
right hand side. In the top line the letter of the star and its
coordinates are displayed. In the four lines below information on the
up to 8 planets (numbered from 0 to 7) of the star is displayed. The
color of these entries is coded according to the color of the ruler of
the planet. A planet displayed in inverse represents one on which
valuable ore may be mined.The first 3-digit figure gives the maximum
population of the planet in millions. The second one gives the
current population in millions. If the planet is enslaved this stat
is displayed in the color of the original ruler. The third one is the
current industrial level of the planet. It describes what amount of
ships or things may be build in a certain time on this planet. This
stat may never go above population number. The final letter (or
blank) is an abbreviation for the type of product being built on the
planet. Blank means nothing. Minor letters stand for different ship
types. M stands for Mining, R for Researching, I for Investing. To
obtain further information on a planet simply click on it. In the
four lines below all taskforces at this star are displayed for the
four players. Taskforces displayed in inverse are taskforces which
haven't yet arrived at the star ,but of which you know that they are
headed there. To obtain data on a taskforce click on it here. To
obtain an overview over all taskforces of one player click on the
appropriate "Tf" sign. In the last line the seven nearest stars
together with their distances are displayed in order of proximity. To
obtain the summary of a star click on it or type 's' on the keyboard.
D) Staroverview ( 's' on the keyboard and return when prompted
for star)
The staroverview is displayed in the middle of the 3 windows on the
right hand side. All stars are color coded as in the main map. For
each star the sum of all its planets, population maxima, population
and industry is displayed. Click on anywhere on the starfield or type
's' on the keyboard and hit return when asked for the star to obtain
the staroverview.
E) Taskforcesummary ( 't' on the keyboard and return when asked for a
specific taskforce)
The taskforcesummary is displayed in the lower right hand window. In
the headline of the display the letter of the taskforce, its star, its
empty capacity , its speed and its range is displayed. If the
taskforce has arrived at a star only the letter of this star is
displayed. If it is in hyperspace, the name of the star it is heading
at, and the number of years it will still take it to arrive there is
displayed. The first stat gives the sum of the sizes of the storage
holds of all ships (including carried ships). Carried Ships are
disassembled. That means that f.e. a glitter which has a size of 20
and a capacity of 19 in practice only occupies one unit of storage
space when carried. Note also that size of the EMPTY storage holds in
this taskforce is only displayed for your own taskforces. For foreign
taskforces (of which you don't know the interior) the maximum possible
empty space is calculated and displayed. The speed is the speed of
the slowest ship in the taskforce ,that is not carried by another
ship. The range is the range of the ship with the smallest range in
the taskforce, that is not being carried. These two stats give the
maximum distance between stars that a taskforce may hyperspace
non-stop and the distance it covers in each year. In the body of the
display the names of all shiptypes in the taskforce appear. If you
have information about the interior of the ships (i.e. it is one of
your taskforces) 2 figures are displayed at the end of the line. The
first gives the number of free ships of this type in the taskforce,
the second the number of carried ships of this kind in the taskforce.
On the other hand if it is a foreign taskforce you will only see the
number of visible ships of each kind. To obtain a shipsummary, a
summary of the technical stats of one kind of ship, click on the name
of the shiptype. To obtain an overview about all the taskforces of
the player (of which you know) in that this kind of ship is known to
be, click on the number of ships.
F) Taskforceoverview ('t' on the keyboard and return when asked for a
specific taskforce)
This is displayed in the lower right hand window. All known
taskforces are displayed including the star they are heading at (or
are at) and the number of years it will still take the taskforce to
arrive there. To obtain a taskforce summary click on the taskforce
you wish to obtain information on.
G) Shipoverview ('f' (=Fleet) )
This is similar to taskforceoverview , but instead of displaying the
star each taskforce is heading at, the number of all free(first) and
carried(second) ships of one shiptype of each known taskforce of one
player is displayed. If you don't know what is inside a
taskforce(i.e. it's not one of your taskforces) then only the visible
ships are displayed To obtain a taskforce summary click on the
taskforce you wish to obtain information on.
H) Planetsummary (hit 's')
Planetsummary is displayed in the lower right hand window. In the
headline star and planet are displayed. In the second line the
population maximum for the planet, its current population and its
industrial level are shown. The name of its displayed in the third
line product. In the next line the cost of the product( the number of
industrial points needed to build it, e.g. , to mine one point of ore
has a cost of 15. A planet with an industry of 60 produces 4 oreunits
a year. A light cruiser costs 100,thus a planet with an industry of
40 needs 2.5 years to produce one.) is shown. The number of years
needed to produce one unit as well as the estimated time at that the
next unit will be available is displayed. To obtain further
information on the ship click on its name.
I) Shipsummary (hit 'f' and return when asked for player)
Shipsummaries are displayed in the lower right side window. In the
headline the name of the shiptype is displayed. In the second line
the size of the ship as well as its capacity is displayed. These
stats are important for how many ships of a type another ship can
carry inside its storage holds. The hyperspeed stat gives the maximum
speed of any taskforce in that such a ship is and is not carried. The
hyperrange gives the range of a taskforce in that such a ship is and
is not carried. If either or both of these attributes is 0 then this
shiptype has no hyperdrive and can't move by itself from one star to
another but must be carried by another ship.The attack stat gives the
strength of the builtin weaponry of this shiptype. No of attack gives
the number of attacks of this strength such a ship may make each turn.
Speed determines when such a ship makes its attack in a battle. The
lower it is the better. Shields gives the power of the protective
devices of the ship. A shield will block an attack of the same
strength 50 % of the time. Techcost gives the price in industrial
points it costs to build one such ship. Techlevel gives the minimum
techlevel a race has to have to be able to build such a ship. If both
of these attributes are displayed in inverse the ship is not
available. Below these attributes several special abilities of some
ships may be displayed:
Starkill = This ship is equipped with a special device which can make
suns go supernovae. All planets and all taskforces present are
destroyed. BEWARE !!! Very dangerous ! Only for absolute
emergencies.
One-Shot = This is a unmanned ship which is destroyed in its first
attack. For example: Torpedoes.
CataStart = Ships with this attribute can be ejected via catapults
very quickly in a fight, if they are carried aboard ships with the
catapult equipment. This allows attacking taskforces to have some
carried ships attack immediately in the first turn of battle.
Not build = Ships of this type cannot be build using normal build
commands. For example: Oreunits and Popunits.
Catapult = Ships with this ability can catapult ships with the
CataStart attribute.
J) Help ('?' on the keyboard)
The help screen is displayed if you at any time click in the upper
right hand command window. It shows all commands and their one letter
abbreviations.
All displays are always immediately updated to represent any change.If
in any display the sign oo(infinite) appears this represents a figure
which is out of bounds. It is certainly larger than the maximum
integer to be displayed in the given number on characters (for Example
if any figure greater than 99 is going to be displayed in a 2
character field it is displayed as oo.).
COMMANDS
Commands are entered in the command window in the upper right hand
corner. In contrast to display functions which are completely mouse
driven all commands are entered at the keyboard. First enter the one
letter code for each command ,then you are queried for all parameters
of the command in this window. In most cases, in which you have
several different options you can scroll through them with the <-key
and the >-key. Press return to select. You can also enter an
identifying letter for each option immediately. When queried for a
number the maximum amount is displayed in brackets. Press 0-9 to
select this small quantity to select other numbers use the <-key and
the >-key. To select maximum press >-key and shift simultaneously.
To select the minimum (usually 0) press the <-key and shift
simultaneously.
G = Go on (Capital 'G' to prevent accidental end of turns)
This command ends your turn and allows the next player to get his
turn.
h = Hyperspace
This command allows you to send taskforces from one star to another.
You are queried first for the task and then for the destination. This
command will automatically carry ships with insufficient range. If
this isn't possible you will get an error message. It also optimizes
for speed.(Carries slower ships in faster if possible.)
e = Emigrate
If you rule a planet and the population is of your race, you can order
some of your loyal subjects into large containers, where cold sleep is
induced. Into each of these containers fit 1 million creatures.
These containers are then fired into space. They are called popunits.
To colonize a planet simply land (with the l command) popunits on
planets and your subjects will awake and start to build another
outpost for your empire. When the population on a planet has reached
its maximum, surplus population is automatically sent into popunits.
k = Kill
This is not a very philantrophic( or philcreaturic) command but
sometimes necessary. It allows you to kill the population of any
planet you control if the population happens to be of another race
(when you have conquered and enslaved the population). If you don't
specify the planet (i.e.you hit return) and there is a ship with
starkiller present, you destroy all planets and all taskforces there !
Be careful !!
j = Join taskforces
With this command you can join up to 30 taskforces. End input with
return. All taskforces have to be at the same star. If possible all
taskforces are joined to one.
l = Land taskforce
With this command you can colonize other planets or supply planets you
already own with more population. As many popunits as there are in
the taskforce and fit on the planet land. This will increase the
population level by this amount. Then as many oreunits as there are
in the taskforce land and increase the industry level. (Providing
that wouldn't raise the industry level higher than the population
level).
n = New taskforce
This command allows you split an existing taskforce into two. You are
prompted for the number of ships of each type in the new taskforce.
All carried ships in both taskforces are unloaded.
d = Diplomatic declaration
This commands sets your attitude towards the other players. You can
declare WAR and this probably causes the other side to declare WAR on
you as well as soon as it is its turn. If you have declared war and
your taskforces meet they will fight. You can make a PEACE offer and
hope that the other side will declare PEACE on you as well or you can
offer an ALLIANCE. This ALLIANCE will be fulfilled by your side only
until the other side declares ALLIANCE as well.
p = Possess planet
If you defeat another player and conquer one of his stars you will
probably wish to use this command. It allows you to take control of
any planet, if all the enemy taskforces have fled or were defeated.
The population of the planet will be enslaved. It will always inform
your opponent of the current state on this star. You will also be
unable to raise popunits from such a planet. Thus you may wish to
kill(= k) this population. On the other hand, if you possess a planet
of a culture with a higher techlevel your techlevel will increase as
well.
b = Build ship
This useful command allows you to set the production on any planet you
rule over. You have several options:
Any kind of ship that your techlevel allows you to build.To get this
option enter the letter of this ship or select it the <,> and RETURN
keys.
RESEARCHING. This allows you to increase your techlevel. Use a
capital 'R' or select it with the <,> and RETURN keys.
INVESTING. This option allows you to increase the industry on this
planet ,but it is rather slow, thus use oreunits whenever possible.
Use a capital 'I' or select it with the <,> and RETURN keys.
MINING. This is only possible on a planet on that ore is found.
These planets are displayed in inverse in the Starsummary. When using
this option your planet outputs oreunits. Use a capital 'M' or select
it with the <,> and RETURN keys.
c=Carry ships
This command allows you to specify the number and type of ships being
carried in a taskforce. As the ships are taken apart before carrying,
large ships can be spread among many smaller ships. Also note that
the empty space inside the storage holds of large ships is used. This
means 4 glitter with a size of 20 and a capacity of 19 each, can be
stored inside one single transporter with a capacity of 4. Carrying
ships can have different reasons. Some ships don't have hyperdrives
or only drives with insufficient range. This means that they have to
be carried by longer range ships on far distances. Others are quite
slow and fast taskforces can be speeded up by faster ships carrying
the slower ones. Note also that ships stored inside other ships can't
be destroyed in battle, even if their carriers are blown up. They
will be unloaded and undamaged next year. This may be a way to
protect valuable but easily destroyed ships like space cannons or
Q-bombs inside larger ships with better armor.
HINTS
The following hints may help you to play a better game against Klingon
or another human player.
1. When the cluster is generated you always get one populated
mineable planet type 60 and one empty planet type 40. There will be
another star within a range of 4 units. There won't be an enemy
nearer than 8 units,thus you needn't be too frightened at the
beginning.
2. Use cheap scouts to explore and on sentry duty to yet uncolonized
stars. Have sentries on all stars within 6 or 8 units of your main
industrialized stars. They won't stop an attacking enemy but you will
get advance warning to prepare to defend. Having one of your main
stars surprised by 3 light cruisers, conquered, and all population
killed when you bring in your taskforces is NOT the way to win.
3. How fast your population grows depends on the distance from the
sun. Planet 3 is rather ideal. Planets farther in are progressively
to hot to have a large birth rate and planets farther out are becoming
colder and colder. Build up your population in the middle planets.
Planets 0 and 7 will never increase their population but always remain
constant or even decrease.
4. Use glitter! Glitter is very cheap and easily destroyed but has a
large size and many shots will be drawn away from your more important
ships. As its capacity is only one less than its size, it can be
transported effectively at the cost of one unit . Use clearers!
These ships have a quite good speed ,thus they will fire early in a
battle. They have many attacks but each of them is pretty weak.
Their attacks can practically only penetrate ships without armor.
They are the ideal counterweapon against glitter, as they clear it
away ,before the other ships fire might be distracted.
5. Never use invest, if you have got ore available.
6. The most important ship to build, after having conquered all stars
in the close neighborhood, is the Trans II. It is available at a
techlevel of 210 and allows you to expand across the gaps between the
stars.
7. Never stop building a ship that is almost finished. You will lose
all efforts you put into it.
8. When a planet has an industry level less than 5 and a population
larger than its industry level, the industry level is automagicaly
increased by 1 each turn. This means that you can start a colony with
popunits only, then wait for the industry to reach 5 and continue your
growth with the "Investing" command. While this isn't very fast or
efficient, it is a possibility. When you have a shortage of ore units
it might be useful not to land them immediately on a new planet but to
wait 5 years until you have received all the "bonus" techlevels.
TECHNICAL NOTES
The game is compiled using Manx Aztec C V3.6a. Lattice and earlier
versions of Manx shouldn't work. It can be completely rebuilt with
the supplied makefile. The resulting executable might be slightly
shorter as a secret debug mode has been removed from the source. To
add more computer players feel free to modify the files "romulan.c"
and "alien.c". To see how a simple computer player is written,
examine the "klingon.c" file. If you write a clever or unusual
computer player I'd be obliged, if you sent it to me for incorporation
in future versions of "Cosmic Conquest". To add more ship types,
modify the ships.h file. If you invent good ones send them to me.
The files:
main.c - startup code
defs.h - general defines for the game
ships.h - description of ship types
conquest.c - main part of the program for computation of moves and
battles
human.c - input/output routines for the human player
klingon.c - klingon player
romulan.c - romulan player (not completed)
berserker.c - berserker player (not completed)
alien.c - alien player (not completed)
cosmic.doc - this text
makefile - a makefile (you wouldn't have guessed that,would you ?)
rev.o - external module containing the revision number
increv - program to update rev.o
Sorry, there are very few comments in the source. But the code is
obvious, isn't it ?!?
DESIGN LIMITS
Most of these limits can be changed by changing the defs.h file and
recompiling the game but old saved positions can't any longer be used.
1. There can never be more than 250 free ships of one type and 250
carried ships of one type in one taskforce. Additional ships
are ignored.
2. There can never be more than 26 taskforces ( Some support for up to
52 taskforces is included.)
3. There are only 16 stars.
4. All other data are short integers. This means values up to 32000
should be ok.
THANKS AND APOLOGIES
Thanks to Bob Shimbo for the original amiga port. Although this
source is completely independent, your program obviously inspired me
very much.
Thanks to Charlie Heath for writing the editor without that
programming on the amiga would be a nightmare(...well,almost). BTW,
ARP is the best thing that happened to the amiga since the invention
of the coprocessor.
Thanks to Manx for writing one of the most buggy professional compiler
I've seen to date (except of course the earlier versions of Manx C).
The assembler keeps crashing the machine without any reason and
generating illegal address gurus in the executable. (And don't ask
about the sdb !!!).
Note to Chris Gray: Received your "Empire" yesterday and noted a few
similarities. Any resemblance is purely coincidental.(Good game
anyway. But please add support for the second terminal (I've got one
,I have to use it) and pleeeeeease debug it thoroughly. It just keeps
guruing.)
Thanx to Bryan Ford for the very useful as well as small increv. It
is included in this zoo-archive as is is needed to reconstruct the
executable.
If you have got ideas or code for enhancements of the program, send
them to me on a disk. You will receive the newest version of Cosmic
Conquest. Maybe your enhancements will already be incorporated in the
version you receive. If you only wish to have the newest version send
a disk to me as well, but please include the postage for the reply
mail.
Sorry you can't reach me via any network but that's a problem here in
Germany. You can reach me via the german smail at this address:
Carl Edman
Pasteurstrasse 7
D-8033 Martinsried
Federal Republic of Germany
Have fun,
Carl Edman